home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / BT510.ARJ / BUGS.510 < prev    next >
Text File  |  1992-06-29  |  32KB  |  726 lines

  1. ==========================================================================
  2. PART I
  3. ------
  4.  
  5. Below is a listing of the patch files and their corresponding source files.
  6. When a patch is applied (left hand column), it changes the source
  7. file (right hand column):
  8.  
  9. Patch File:                 Files:             Size       Last Modified
  10. --------------              -------------- ------------- ---------------
  11. BPATOS2    510  --------->  BTRCALLS   DLL        40,674  9-14-90  9:05a
  12. BPATREQO   510  --------->  BTRCALLS   DLL        24,778 12-12-89 11:15a
  13. WTOOLPAT   510  --------->  BTRTOOLS   EXE       116,528  8-28-90 11:03a
  14. BPATWIN    510  --------->  WBTRCALL   DLL        51,392  8-28-90 10:24a
  15. BPATREQ    510  --------->  BREQUEST   EXE        17,874  3-22-90  3:46p
  16. BPATDOS    51A  --------->  BTRIEVE    EXE        42,524  7-12-90  5:21p
  17. BPATUT     510  --------->  BUTIL      EXE        44,912 12-11-89  4:03p
  18. BPATRTR    510  --------->  BROUTER    VAP        13,054 12-11-89  2:28p
  19. BPATVAP    510  --------->  BSERVER    VAP       132,015 12-11-89  3:08p
  20. BPATNLM    510  --------->  BTRIEVE    NLM        56,524  3-22-90  3:56p
  21.  
  22. ==========================================================================
  23. PART II
  24. -------
  25.  
  26. OPTIONAL PATCHES
  27.  
  28. Optional patches are applied by removing the (;) from the beginning of the
  29. patch line.  Instructions for implementing the optional patches are in
  30. the patch files.
  31.  
  32. Below is a listing of the optional patches and their corresponding patch files.
  33. The descriptions for the patches can be found in PART III of this document.
  34.  
  35. Patch #          Patch File:
  36. --------         --------------
  37.  
  38. #  7     ----->  BPATVAP    510
  39. # 20     ----->  BPATDOS    51A
  40. # 77     ----->  BPATDOS    51A
  41. # 98     ----->  BPATDOS    51A
  42.  
  43.  
  44. ==========================================================================
  45. PART III
  46. --------
  47.  
  48. Below is a listing of the patched products.  In parenthesis () is the
  49. environment for which the patch was created.
  50.  
  51.       Bug descriptions for :
  52.  
  53.       BTRIEVE (DOS, OS/2, Windows,  & NLM)
  54.       BSERVER(VAP),
  55.       BUTIL,
  56.       BTRTOOLS
  57.       Requester (DOS & OS2)
  58.  
  59.   1. Bserver (vap)
  60.      Note: Not a really a bug, but an improvement!
  61.  
  62.      If a GET DIRECT operation returns a record which has a null value in
  63.      the key field specified by key number (and the key allows duplicates) then
  64.      status 82 is returned. This is a correct status code. Sometimes, however,
  65.      the user is not interested in positioning by any of the keys; he simply
  66.      wants to retrieve the record. To achieve this, a new option is provided
  67.      by this patch: the user can specify -1 in the key number and then
  68.      ONLY the data will be returned (and of course, no status 82 will be
  69.      reported).
  70.  
  71.   2. Bserver (vap)
  72.  
  73.      Files with variable size records can become corrupted (in the variable
  74.      pages) if the page size is at least 1024 and the user stores many
  75.      records with extremely short (1 to 2 byte) variable parts.
  76.  
  77.   3. Bserver (vap)
  78.  
  79.      Files can be left open on a server if another connected server crashes
  80.      and Netware SQL has opened these files previously from the crashed
  81.      server.
  82.  
  83.   4. Bserver (vap)
  84.  
  85.      If 2 workstations hold record locks on the same file and then they both
  86.      start a transaction and attempt to get a record from this file (i.e. try
  87.      to lock the file), then both stations will be locked up, without getting
  88.      a status 78 ("deadlock detected") on one of the stations.
  89.  
  90.   5. Bserver (vap)
  91.  
  92.      Any file access (get,step,etc.) can return an erroneous status 85
  93.      (was previously documented here as an 84- "File in use") in a "no-wait"
  94.      transaction (op code 219).  It may also lock up in a regular transaction
  95.      (op code 19) if Station 1 was holding a record lock on the file BEFORE
  96.      it issued the BEGIN TRANSACTION and Station 2 had opened the file earlier
  97.      than Station 1.
  98.  
  99.   6. Bserver (vap)
  100.  
  101.      If the user passes Btrieve a file name in an illegal format (i.e. more
  102.      than an 8 character name or more than a 3 character extension) then
  103.      Btrieve stores it as it is given.  Netware 286, however, drops the extra
  104.      letters and will open a file which matches the re-formatted name (e.g if
  105.      given: "abcdefghij.klmno" then file "abcdefgh.klm" is opened if it exists).
  106.      This can cause a status 94 for another open if that other open is not
  107.      getting the same, "miss-spelled" name. This patch will make sure that
  108.      Btrieve will always store internally the the re-formatted file name.
  109.  
  110.   7. Bserver (vap)
  111.  
  112.      When all workstations are shut down on an ArcNet network, the VAP
  113.      operating system returns an error to all VAPs using the Service
  114.      Advertising Protocol.  This causes Bserver to issue an Error-Log message
  115.      of "Send Failure in Advertiser".   This patch is normally commented-out,
  116.      but may be enabled by users who find their error logs clogged up.
  117.  
  118.   8. Bserver (vap)
  119.  
  120.      The following scenario produces an erroneous status 14:
  121.          a. first a workstation opens a file read-only;
  122.          b. the same file is opened again in regular mode once or more times
  123.             (either by another or by the same workstation);
  124.          c. using the "regular-mode" handle(s) do some operations which involve
  125.             the preimage file of the file (insert, update, delete, or transact)
  126.          d. close the file on all handles so that the "read-only" handle does
  127.             the LAST close;
  128.          e. open the file again in regular mode and try to do any operation
  129.             which uses the pre-image file.
  130.  
  131.   9. Brequest
  132.  
  133.      This patch makes BRequest aware of a new error code #74, which results
  134.      when an END_TRANS function is internally changed to an ABORT_TRANS due
  135.      to a previous error within the transaction.  Without this patch,
  136.      Brequest will stop broadcasting the END_TRANS to all servers when this
  137.      error is encountered.  This can result in the transaction left open on
  138.      another server.
  139.  
  140.  10. Brequest
  141.  
  142.      This patch fixes BRequest so that it can reset another workstation by
  143.      connection number without also resetting itself and terminating its own
  144.      connection.
  145.  
  146.  11. Brequest
  147.  
  148.      This patch fixes a BRequest SPX input queuing problem which can result
  149.      in lost packets and even BRequest lock-up when overloaded.  This problem
  150.      is generally seen only if a very slow workstation is talking to a very
  151.      fast (and lightly loaded) BServer.  It may also appear when BRequest is
  152.      running in a DesqView window with other processes (such as copying from
  153.      a hard disk to a floppy), since that effectively slows the W.S.
  154.  
  155.  12. BUTIL.EXE
  156.  
  157.      Increased stack size to 22K bytes.  Btrieve utilities for COPY and
  158.      INDEX were crashing due to insufficient stack space to accommodate
  159.      local variables.
  160.  
  161.  13. Brequest
  162.  
  163.      This patch was made to satisfy a user request that BRequest should be able
  164.      to alternately attach, query, and detach to an indefinite number of
  165.      BServers.  Currently, BRequest would have to be unloaded after the 8th
  166.      server is attached.
  167.  
  168.  13/a Brequest
  169.  
  170.      This patch is required in conjunction with patch #13 and ALSO fixes a
  171.      longstanding problem where a Begin_Transaction immediately after mapping
  172.      to a new server would fail to broadcast the transaction to that server.
  173.  
  174.  14. Btrieve (NLM- NetWare 3.0; NetWare 3.1 patch #1)
  175.  
  176.      An incompatibility with the rest of the Btrieve products:
  177.        The Get Position operation following a Delete operation returns
  178.        status 43 instead of status 8.
  179.  
  180.  15. OS/2 Requester
  181.  
  182.      15.a Returning status 22 on extended inserts
  183.      15.b Version returned was 5.0
  184.  
  185.  16. OS/2 Requester
  186.  
  187.      Opening a file on a different server than previously opened files
  188.      could have resulted in a status 12 despite correct filenames
  189.      and drive mappings.
  190.  
  191.  17. OS/2 Requester
  192.  
  193.      Random status 12 or 91 returned when opening a file.
  194.      This occurs if two file servers in the LAN have identical internet
  195.      addresses except for the last byte, and if the desired server is
  196.      found after the other in the bindery scanned for BSERVER VAP's.
  197.  
  198.  18. OS/2 Requester
  199.  
  200.      Protection violation generated by the COBOL interface due to the
  201.      requester not restoring the caller's SI and DI registers on return.
  202.      This could, but hasn't yet, be caused in other languages as well.
  203.  
  204.  19. Btrieve (NLM- NetWare 3.0; Netware 3.1 patch #2)
  205.  
  206.      Without this patch various random error status can be returned when using
  207.      variable length pages or using truncation.
  208.  
  209.  20. Btrieve (DOS)
  210.  
  211.      Btrieve will hang if a TSR or device driver is using it and that
  212.      TSR/device driver was called from DOS after the DOS-busy flag has
  213.      been set.  This patch is normally "commented-out."  It causes Btrieve
  214.      to ignore the DOS-busy flag, instead of waiting for it to clear
  215.      before Btrieve makes DOS calls.  Only apply this patch if you are sure
  216.      that it is needed; that is, only if your application is calling
  217.      Btrieve while the DOS-busy flag is set AND you are sure that DOS is
  218.      not really busy!
  219.  
  220.  24. Btrieve (DOS, NLM- Netware 3.0; Netware 3.1 patch #5)
  221.  
  222.      Get Key-only operations are not updating the position block.
  223.  
  224.  25. Btrieve (vap)
  225.  
  226.      Logging to a different volume of the same server does not work properly.
  227.  
  228.  27. Btrieve (VAP, NLM- Netware 3.1 patch #7)
  229.               & Brequest (DOS, os/2 )
  230.  
  231.      For data-only files, Btrieve was returning data to the key buffer
  232.      after Get Direct, Update, Insert and Extended Insert.
  233.      *** THE PATCH MUST BE MADE BOTH TO THE VAP (OR NLM) AND THE REQUESTER ***
  234.          THE VAP (OR NLM) SENDS A FLAG TO THE REQUESTER- IF YOU DON'T PATCH
  235.          THE REQUESTER THE FLAG WILL NOT BE UNDERSTOOD AND THE PROBLEM WILL
  236.          STILL BE PRESENT.
  237.  
  238.  28. Btrieve (DOS)
  239.  
  240.      A file can become corrupted if a work station opens a file as another
  241.      workstation closes the same file from an accelerated processing mode
  242.      (timing-related bug, which is corrected by this patch).
  243.  
  244.  30  Btrieve (vap, DOS)
  245.  
  246.      Btrieve will return an erroneous status 26 when a supplemental
  247.      index with 8 segments is added to a data only btrieve file of
  248.      size 512 bytes.
  249.  
  250.  31  Btrieve (DOS)
  251.  
  252.      Btrieve will return an erroneous status 83's when it does Insert Extended
  253.      operations within a transaction.
  254.  
  255.  33  Btrieve (vap, NLM- NetWare 3.1 patch #10)
  256.  
  257.      This fixes the following bug: after a Get Direct returned a status 22
  258.      (user's data buffer too small), the user's key buffer was being
  259.      overwritten with garbage.   It also fixes a bug in which the NLM
  260.      was not returning a key value after a Get Direct returned a status 22
  261.      when the user's data buffer WAS long enough to at least receive the
  262.      fixed length portion (including the keys) of the record.
  263.      *** THIS PATCH WILL ONLY WORK IF PATCH #27 HAS BEEN APPLIED TO THE ***
  264.          VAP OR NLM AND BREQUEST.EXE !!!
  265.  
  266. 34  Btrieve (vap)
  267.  
  268.     Fixes a bug which caused a GPI crash on the vap's server when the
  269.     application used the Extended Insert function and passed a data buffer
  270.     larger than the "Largest record size" parameter configured by Bsetup.
  271.  
  272. 35  Btrieve (DOS)
  273.  
  274.     Fixes a bug which caused btrieve to unnecessarily make a preimage
  275.     file if the very first operation requested after Btrieve was loaded
  276.     was a Create.
  277.  
  278. 36  Btrieve (DOS)
  279.  
  280.      Fixes a bug in which btrieve crashes (or perhaps shows other
  281.      unpredictable symptoms) when updating a record retrieved with a
  282.      get direct or step (no key) operation if there has been no insert
  283.      nor get (using a key) since the file was open, and if the file's
  284.      position block array contained values other than binary zeros prior
  285.      to the file's open operation.
  286.      (Fixes problem where update to dataonly file after StepFirst
  287.       hangs the workstation)
  288.  
  289. 37   Btrieve (NLM- Netware 3.1 patch #11, DOS, and vap)
  290.  
  291.      Fixes a bug which caused Btrieve to return an incorrect status 2
  292.      when a record was deleted from a file with a supplemental index.
  293.      This bug is most likely to occur only if few records have been inserted
  294.      since the creation of the supplemental index.  The bug only occurs
  295.      on the VAP or DOS if the supplemental index was created with the NLM.
  296.  
  297. 38   BTRTOOLS - (Windows Btrieve utilities)
  298.  
  299.      This patch stops the description file utility from dropping the first
  300.      word of the comments from the description file.
  301.  
  302. 39   Btrieve (OS/2)
  303.  
  304.      Fixes a bug which would cause a segmentation violation during
  305.      re-initialization through BTRVINIT().
  306.  
  307. 40   Btrieve ( vap )
  308.  
  309.      Fixes an error in patch #34 for the vap.  This error causes a status 39
  310.      to be returned when XQLI starts up.
  311.  
  312. 41   Btrieve ( OS/2 & Windows )
  313.  
  314.     Fixes a bug which caused btrieve to unnecessarily make a preimage
  315.     file if the very first operation requested after Btrieve was loaded
  316.     was a Create.
  317.  
  318. 42   Btrieve ( OS/2 & Windows )
  319.  
  320.      Fixes a bug in which btrieve crashes (or perhaps shows other
  321.      unpredictable symptoms) when updating a record retrieved with a
  322.      get direct or step (no key) operation if there has been no insert
  323.      nor get (using a key) since the file was open, and if the file's
  324.      position block array contained values other than binary zeros prior
  325.      to the file's open operation.
  326.      (Fixes problem where update to dataonly file after StepFirst
  327.       hangs the workstation)
  328.  
  329. 43   Btrieve ( OS/2 & Windows )
  330.  
  331.      Fixes a bug which caused Btrieve to return an incorrect status 2
  332.      when a record was deleted from a file with a supplemental index.
  333.      This bug is most likely to occur only if few records have been inserted
  334.      since the creation of the supplemental index.  This bug will only
  335.      occur in Btrieve for Windows or OS/2 when using a file created by
  336.      the NLM Btrieve.
  337.  
  338. 44   Btrieve ( DOS & OS/2 )
  339.  
  340.      Fixes this bug: A file is opened in exclusive mode.  The application
  341.      then repeats the following sequence a several times, each time using a
  342.      different record: it retrieves a record using a multiple record lock
  343.      bias (300 or 400), then it updates or deletes that record (which should
  344.      clear the lock).  Eventually, a status 81 (Lock Error) is returned.
  345.      The number of times it can repeat the sequence before the status 81
  346.      is determined the user's specification of the maximum number of multiple
  347.      locks (/L:).  For DOS Btrieve, this bug will also appear if the file is
  348.      opened in other modes, provided that the file is on a non-network drive
  349.      and SHARE.EXE is not loaded.
  350.  
  351. 45   BTRTOOLS (Windows)
  352.  
  353.      Fixes bug which required File Information key count to match total
  354.      key/segment count in description file.  This was for the description
  355.      file edit utility.
  356.  
  357. 46   Btrieve (DOS)
  358.  
  359.      Btrieve does not return status code 83 when a record is updated but
  360.      not read inside a transaction.
  361.  
  362. 51   BUTIL.EXE
  363.  
  364.      Clone is created incorrectly for a file which has at least one multi-
  365.      segmented supplemental key and one or more additional supplemental keys.
  366.  
  367. 52   BROUTER (VAP)
  368.  
  369.      This bug causes the server to GPI or ABEND if a Btrieve CREATE call
  370.      is made to a REMOTE server.
  371.  
  372. 53   BROUTER (VAP)
  373.  
  374.      If there are more than 100 file servers on the network(s), then BRouter
  375.      will sometimes crash when building its server tables.
  376.  
  377. 54   BROUTER (VAP)
  378.  
  379.      This patch fixes a BRouter SPX input queuing problem which can result
  380.      in lost packets.  It also fixes lock-up problems caused by an over-
  381.      loaded on BRouter.
  382.  
  383. 55   Btrieve (VAP, DOS, Windows, OS/2)
  384.  
  385.      If VAP Btrieve has a file open, and DOS or Windows Btrieve (running on
  386.      a workstation) tries to open a file in the Normal, Verify, or Exclusive
  387.      modes, DOS/Windows/OS2 Btrieve incorrectly returned a status 94.  This
  388.      patch makes it return the correct status, 85.  Similarly, if Btrieve
  389.      running on a workstation has a file open and VAP Btrieve tries to
  390.      open it (any mode), VAP Btrieve was returning a 94.  Now it'll return
  391.      an 85.  Also, if a workstation Btrieve tries to open a file in
  392.      Accelerated mode in a directory in which the user does not have Netware
  393.      Write permission, an incorrect status of 85 was being returned.  Now
  394.      it returns a 94.
  395.  
  396. 56   Btrieve (VAP)
  397.  
  398.      This bug allowed a user to open and write to files in directories
  399.      in which the user has no Write permission.
  400.  
  401. 58   Btrieve (VAP)
  402.  
  403.      This is not really a bug but it allows applications which "illegally"
  404.      change the key number when executing an update operation to operate
  405.      without getting a status 7. (Earlier versions did not catch the user
  406.      when changed the key number, so this fix makes 5.10 backward compatible
  407.      in this respect.)
  408.  
  409. 62   Btrieve (!!!! Only for IBM PC LAN users !!!!)
  410.  
  411.      Changes executed on a file within a transaction are erroneously rolled
  412.      back if another station accesses the file before an End Transaction (op19)
  413.      executed on the first station.
  414.  
  415. 64   Btrieve ( DOS )
  416.  
  417.      If the user attempts to install Btrieve with the /F:nn parameter to
  418.      specify that Btrieve allow more than 20 open files, and for any reason
  419.      the attempted installation fails (e.g., Btrieve already loaded), then
  420.      this bug could cause unpredictable symptoms, most likely hanging the
  421.      system.
  422.  
  423. 65   Btrieve ( OS/2 )
  424.  
  425.      Cntl-Break causes program to hang because OS/2 does not clear
  426.      the Btrieve semaphore owned by the process, nor does it let the process
  427.      finish the Btrieve operation before terminating.  The ExitList routine
  428.      was waiting for the semaphore to clear.  Cntl-C does not cause have
  429.      this problem.
  430.  
  431. 67   Btrieve (vap)
  432.  
  433.      This fixes a bug in an undocumented Btrieve function call which is
  434.      used by NetWare SQL in its "alter table" function.  This bug was
  435.      introduced by patch #6.
  436.  
  437. 68   BROUTER (VAP, NLM- NetWare 3.1 patch #22)
  438.  
  439.      This fixes an interface problem between both BROUTERs and the Btrieve NLM
  440.      when doing an update operation on a key number other than 0.  In some
  441.      cases this could result in over-writing the front of the record.
  442.  
  443. 69   Btrieve ( DOS, Windows, OS/2 )
  444.  
  445.      When the user attempts to use Btrieve's logging feature, and specifies
  446.      a log file on a different volume of the same server on which the
  447.      file-to-be-logged resides, logging does not happen.  This patch fixes
  448.      the problem for DOS and Windows Btrieve.  However, this problem is
  449.      not patchable for OS/2 Btrieve.
  450.  
  451. 71   Btrieve ( DOS, Windows, OS/2, VAP, NLM- NetWare 3.1 patch #24 )
  452.  
  453.      When an application does a Step Next or Step Previous (or Extended
  454.      Step Next/Previous) after a Delete, Btrieve should return a status
  455.      8, Invalid Positioning.  Instead, this bug causes it to go into an
  456.      endless loop.  With the VAP & NLM, the workstation will appear to be
  457.      hung, too.  This patch fixes that bug.  (The bug only appears if the
  458.      record deleted has a physical position > 0xffff.)  Also fixed is a
  459.      related symptom of this bug: DOS, Windows and OS/2 Btrieve incorrectly
  460.      return a status 0 if you do a Get Position after a Delete.
  461.  
  462. 73   Btrieve (DOS, Windows, OS/2)
  463.  
  464.      Fixes a bug which shows up in the following scenario: an application has
  465.      two files open, and file #2 is opened in accelerated mode.  It closes
  466.      file #1.  It does some updates/inserts to file #2.  It closes file #1
  467.      again (an error which returns a status 3).  Many of the recent changes
  468.      to file #2 will be lost.
  469.  
  470. 74   Btrieve (DOS, Windows, OS/2)
  471.  
  472.      When using the Btrieve logging feature, the Reset operation was not
  473.      being logged and the log files were being left opened after a Reset.
  474.  
  475. 76   Btrieve (DOS)
  476.  
  477.      This corrects severe performance degradation on simple reads during
  478.      inserts by another WS with a transaction on the file.  This was caused by
  479.      waiting in a loop for a lock instead of simply verifying a not-locked
  480.      state and returning.
  481.  
  482. 77  Btrieve (DOS)
  483.  
  484.      Btrieve 5.10 uses a new mechanism in order to keep more than 20 files
  485.      open to DOS at a time instead of rotating the 20 available handles.
  486.      This can cause Btrieve to compete with the application for available DOS
  487.      or NetWare handles where it did not previously do so.  One solution is
  488.      to set the NetWare shell configuration to allow more than the default 40
  489.      handles.  A low-performance solution is to use this patch to disable the
  490.      new mechanism and keep the 20 handle rotation limit.  This allows 5.10 to
  491.      substitute for 5.00 without any environment changes, but at a cost.
  492.  
  493. 78   Btrieve (DOS, Windows, OS/2, VAP) and BROLLFWD.
  494.  
  495.      If the computer on which DOS, Windows, or OS/2 Btrieve is running is
  496.      turned off or rebooted during a transaction, Btrieve's implicit Abort
  497.      Transaction, which is performed when the files involved are next opened,
  498.      was not being properly logged.  Also, with BSERVER.VAP, there was a small
  499.      timing window in which, if the server is turned off during an update,
  500.      delete, or insert, the VAP may improperly log an operation when the
  501.      involved files are reopened.  In each of these cases, the improper logging
  502.      would confuse BROLLFWD.  (Note: BROLLFWD is not being patched.  You
  503.      must use version 5.15 of BROLLFWD to fix this bug.)
  504.  
  505. 79   Btrieve (DOS, Windows, and OS/2)
  506.  
  507.      RECALLED AND RE-RELEASED AS PATCH #116!!
  508.  
  509.      If an End Transaction operation is interrupted (by a reboot, or power
  510.      down), Btrieve may not be able to use the transaction file.  DOS Btrieve
  511.      displays "Unable to access btrieve file for transaction recovery" and
  512.      will not load.  Windows and OS/2 Btrieve return a status 1002.  This
  513.      patch is for DOS Btrieve only.  Windows and OS/2 Btrieve will be fixed
  514.      in the next release.
  515.  
  516. 81   Btrieve (DOS,Windows,OS/2)
  517.  
  518.      The user's Filter_Reject_Count on GET_EXTENDED operations was limited
  519.      to 128 records, regardless of the length passed in, resulting in error
  520.      #60 when records should have been returned.  This removes that limit.
  521.  
  522. 82  Btrieve (OS/2)
  523.  
  524.       Multiple sessions accessing the same transaction control file caused the
  525.       sessions to become hung up.
  526.  
  527. 83  Btrieve (DOS, Windows, OS/2, VAP)
  528.  
  529.       When creating a supplemental index using a null key and an extended
  530.       key type, if the null value is an even number, Btrieve will not
  531.       recognize the extended key type but will instead use the 3rd bit of the
  532.       key flags word to flag the key as either binary or string.
  533.  
  534. 84  Btrieve ( DOS )
  535.  
  536.       Status 93s were sometimes returned when doing multiple locks on many
  537.       files.  The error could not be cleared by a RESET; it could only be
  538.       cleared by reloading btrieve.  This was caused when a failure to open
  539.       the transaction file, because of NO_DOS_HANDLES, caused the system to
  540.       "rotate" handles by closing an old one.  A bug in the rotation code
  541.       caused a file with a lock to be closed without clearing the lock record.
  542.       This record then resulted in a false state in later operations, leading
  543.       to the status 93.  This problem can also be solved by increasing the
  544.       /F parameter, since this occurs only when operating at the file limit.
  545.  
  546.  
  547. 85  Btrieve ( DOS )
  548.  
  549.       When doing an END TRANSACTION with logging on, the workstation would
  550.       sometimes hang in a loop waiting for the log file lock to clear when
  551.       the workstation itself was responsible for that lock.  This fix clears
  552.       all locks at END TRANS time.
  553.  
  554. 90   BTRIEVE (OS/2,WINDOWS)
  555.  
  556.       The SET_DIR operation was not restoring the DS register before setting
  557.       the status code if the operation failed.  The status code was set
  558.       using the DS register of the KEY BUFFER.
  559.  
  560. 91   VAP Btrieve: BSERVER.VAP, version 5.10
  561.  
  562.      With multiple workstations involved in transactions, a client could
  563.      receive erratic and non-repeatable status 2s on operations ranging from
  564.      OPENs to GETs on a file already opened.  The root cause is that one
  565.      client has opened the file to his TTS task and the file has subsequently
  566.      been closed for rotation due to limited handles.  The problem is that
  567.      the file must be re-opened on the next access, but only the owner task
  568.      can do so.  All others get errors that translate to 2.  The problem
  569.      disappears as soon as the first client accesses or ends his transaction.
  570.      This bug is therefore timing-related and very hard to pin down.  This
  571.      fix allows other clients to temporarily assume the right task #.
  572.  
  573. 92.  VAP Btrieve: BSERVER.VAP, version 5.10
  574.  
  575.      After an Extended Insert, the data buffer should be passed back with
  576.      a count of records successfully inserted in the first word of the
  577.      buffer.  However, this bug prevented the data buffer from being sent
  578.      to the application if the Extended Insert returned a non-zero status.
  579.  
  580. 93.  Btrieve (DOS, Windows, OS/2, VAP)
  581.  
  582.      The STAT command would return 0 for unused pages whenever the number was
  583.      greater than 32K (32768).  This forces a non-zero return.
  584.  
  585. 95.  Btrieve (DOS, Windows, and OS/2)
  586.  
  587.      When building a supplemental index (Op 31) on a file opened in
  588.      accelerated mode, if a duplicate key value is found and duplicates are
  589.      not allowed for the index being built, btrieve enters an infinite loop.
  590.  
  591. 96.  Btrieve (DOS, Windows, and OS/2)
  592.  
  593.      If a file server is POWERED DOWN after a Btrieve insert operation,
  594.      the data file may sometimes be truncated, returning status 4 or other
  595.      errors when the server is restarted.  This is due to a failure to commit
  596.      the expansion due to additional pages.  This patch issues a DISK RESET
  597.      at the end of each operation to force an update of the directory.
  598.  
  599. 97.  Btrieve (DOS, Windows, and OS/2)
  600.  
  601.      If Btrieve was not able to close a file during a Reset operation,
  602.      instead of returning a Status 2, Btrieve would act unpredictably,
  603.      most likely hanging or crashing the work station.  (In the OS/2
  604.      environment, a protection violation will probably be detected.)
  605.      This bug was introduced by patch #74.
  606.  
  607. 98.  Btrieve (DOS)
  608.  
  609.      This optional patch implements an enhancement to the GET_EXTENDED API to
  610.      allow it to use the current record as the starting point, rather than
  611.      the next record.  The header signature "UC" must be used instead of the
  612.      normal extended get signature, "EG".
  613.  
  614. 99.  Btrieve (DOS)
  615.  
  616.      This patch is the opposite of patch #77 so they should not be used
  617.      together. This patch causes the allocation of TWICE as many DOS file
  618.      handles as was specified by the "/F" parameter.  In other words, a 2:1
  619.      ratio rather than the customary 1:1.  This allows both the data and
  620.      preimage files to remain open for all AFL entries in order to avoid the
  621.      cost of closing files for handle rotation.  Since each DOS handle entry
  622.      takes only one additional byte, the memory cost is minimal.
  623.  
  624. 100. Btrieve (OS/2)
  625.  
  626.      When a connection to a file server is lost and a RESET or ABORT
  627.      is done the operation would fail on the file handles for the lost
  628.      server.  This patch causes Btrieve to continue with the operation
  629.      and ignore any  failures.  This patch also guarantees a zero return
  630.      code on a RESET operation.  This should be done for all client versions,
  631.      but only done here for OS/2 and is source fixed for next versions.
  632.  
  633. 101. Btrieve (OS/2)
  634.  
  635.      When a connection to a file server is lost, lock operations on the
  636.      file return a LOCK VIOLATION status rather than an invalid handle.
  637.      This incorrect status is returned by the NetWare requester.  The result
  638.      is that Btrieve keeps retrying the lock assuming that the status means
  639.      someone else has it locked.  To get around the problem, a LSEEK to EOF
  640.      is done to verify the handle.
  641.  
  642. 103. Btrieve (OS/2)
  643.  
  644.      If errors occur during a CLOSE, continue processing to clean out AFL
  645.      and close the handle to clear the system handle table.
  646.  
  647. 104. Btrieve (Windows)
  648.  
  649.      Removes "Beta Version" from header description seen using EXEHDR.
  650.      Also changes incorrect version number in description from 5.11 to
  651.      5.10.
  652.  
  653. 105. Btrieve (OS/2)
  654.  
  655.      Comparasion of segment limit and length of structure for parameter
  656.      checking was incorrect.
  657.  
  658. 106. Btrieve (OS/2)
  659.  
  660.      Due to yet another incorrect status from an OPEN of the TRN file, Btrieve
  661.      was placed in a loop retrying the open to a server whose connection was
  662.      lost due to power down or other means.  This occurred on END_TRAN.
  663.      Fixed by retrying open only on status codes 5 (INVALID_ACCESS) and
  664.      32 (SHARING_VIOLATION).
  665.  
  666. 107. Btrieve (DOS, Windows, OS/2)
  667.  
  668.      A stat 80 was returned on an update, with only 1 workstation accessing
  669.      the file. It only happened after a successful insert that had expanded
  670.      the file size by allocating a new page to it.
  671.  
  672. 110.  This is a fix for patch #84.  A typo resulted in 58 where 5B should be.
  673.  
  674. 111.  Btrieve (DOS)
  675.  
  676.       During insertation and update, unnecessary key pages are recorded in
  677.       .PRE file.
  678.  
  679. 112.  Btrieve (DOS)
  680.       * Patch 112 for Windows, OS/2, VAP will be released at a later date.
  681.  
  682.       If the file opened in accelerated mode returns status 5 during an
  683.       update the file might become corrupted without any spectacular
  684.       symptom of the corruption. (In the reported case a key was lost
  685.       from the Btree.)
  686.  
  687. 113.  Btrieve (DOS, Windows)
  688.  
  689.       The following bugs have been fixed regarding to GET_DIRECT operation:
  690.        - GET_DIRECT after deletion of the record by another application gives
  691.          status 2.
  692.        - GET_NEXT after GET_DIRECT returns status 9, if the file contains
  693.          records with duplicate values.
  694.        - Sometimes the returned status code by GET_DIRECT following a
  695.          DELETE operation are different.
  696.        - In certain cases after deletion of the last record GET_DIRECT
  697.          does not report an error status on the just deleted record.
  698.  
  699. 114.  Btrieve (DOS, Windows)
  700.  
  701.       When doing an END TRANSACTION with logging on, an already opened
  702.       Btrieve file would sometimes open again and it even remains open after
  703.       the application's finishing.
  704.  
  705. 115.  Btrieve (DOS, Windows, and OS/2)
  706.  
  707.       If Btrieve is configured with no compression buffer, or with a
  708.       compression buffer that is too small ( /u parameter ), the Step
  709.       operations incorrectly return a status 54 (Variable Page Error)
  710.       instead of the correct status, 58.  This patch fixes the problem.
  711.  
  712. 116.  Btrieve (DOS, Windows, and OS/2)
  713.  
  714.      This is a fix for the case where
  715.         (a) patch #79 has been applied
  716.         (b) Btrieve operates on a NetWare Lite network and 
  717.         (c) the .TRN file is redirected over the network and is used by 
  718.             another instance of Btrieve. 
  719.  
  720.      Given all of this, a simple series of operations will either fail or hang 
  721.      the machine (depending on NWLite's version#). (Note: this is a slightly 
  722.      rewritten patch 79, so whatever it has fixed, this 'new' patch will 
  723.      fix too.)
  724.  
  725.